//(function(){
//	if(!pf) {//如果未定义pf，那么执行定义操作。
		var pf = {
			/**
			 * 获得通用的JavaScript的对象
			 */
			getCommonJavaScript : function(/*String*/className) {
				//jsloader被封装在一个特定的frame中，因此此处需要使用特定的frame名称。
				top.deamonFrame.getJavaScript(className);//1、要求deamonFrame先加载JavaScript对象；注意：如果deamonFrame中也没有此class对象，那么需要通过Ajax同步取得JavaScript文件，并在客户端执行。即：执行eval();
				this.refCommonClass(className);
			},
			
			/**
			 * 引用系统通用的类，通过递归的方式进行处理。
			 * @param String className
			 */
			refCommonClass : function(/*String*/className) {
				var names = className.split('.');//全路径类名的分割
				var parentLocal = window;//本地的父对象，首先是window对象本身
				var parentDeamon = getDeamonFrame();//通用的库的父对象。
				for(var name in names) {
					if(parentDeamon[name]) {//如果通用库中存在此对象
						if(parentLocal[name] != parentDeamon[name]) {
							parentLocal[name] = parentDeamon[name];
						}
						parentLocal = parentLocal[name];
						parentDeamon = parentDeamon[name];
					} else {
						return false;//表示引用错误
					}
				}
				return true;//表示引用正确
			},
	
			/**
			 * 等价于Java中的package
			 */
			provide : function(/*String*/packageName) {
				if(packageName) {
					var parts = packageName.split('.');
					var parentObj = window;
					for(var part in parts) {
						if(!parentObj[part]) {
							parentObj[part] = {};
						}
						parentObj = parentObj[part];
					}
				} else {
					throw new Error('packageName must String. this is [' + packageName + ']');
				}
			},
			
			/**
			 * 等价于Java中的import，并依赖jsloader实现动态加载
			 */
			require : function(/*String*/className) {
				//如果本页面中已经通过<script>定义出来特定的对象，那么就不用再加载。
				alert('值 : ' + top.deamonFrame.testVar);
				try {
					top.deamonFrame.test.testMethod();
				} catch (e) {};
				if(!refCommonClass(className)) {//如果未找到className对象，那么就从统一加载的地方进行加载
					this.getCommonJavaScript(className);
				}
			},
			
			/**
			 * 取到deamonFrame对象
			 */
			getDeamonFrame : function () {
				return top.deamonFrame;
			}
		};
//	}
//}) ();

/**
 * 在jQuery由于无法支持对a.b.c形势的id进行获取，因此重新包装出jQuery对象。
 * 
 * @param String elemId
 * @return jQuery的包装对象
 */
$id = function(/*String*/ elemId) {
	if(typeof elemId == 'string') {
		//根据Element的ID获得Element对象
		var elem = document.getElementById(elemId);
		//将Element对象包装为jQuery的对象。
		return jQuery(elem);
	}
	throw new Error('elemement id must be string. [' + (typeof elemId) + ']');
}